// This parameter will be useful for alpha blending 
float4 colorMultiplier;

// the input texture
texture2D inputTex;
sampler2D inputSampler = sampler_state
{
	Texture = <inputTex>;
	magfilter = POINT; // we don't want/need any expensive filtering, so point sampling is adequate
	minfilter = POINT;
	mipfilter = POINT;
	AddressU = clamp;
	AddressV = clamp;
};

// Vertex-shader input
struct VSInput
{
	float4 Position : POSITION0;
	float2 TexCoord : TEXCOORD0;
};

// Vertex-shader output
struct VSOutput
{
	float4 Position : POSITION0;
	float2 TexCoord : TEXCOORD0;
};

// Pixel-shader input
struct PSInput
{
	float2 TexCoord : TEXCOORD0;
};

// Pixel-shader output
struct PSOutput
{
	float4 Color : COLOR0;
};

VSOutput VSFunction(VSInput input)
{
	VSOutput output;
	output.Position = input.Position;
	output.TexCoord = input.TexCoord;
	return output;
}

PSOutput PSFunction(PSInput input)
{
	PSOutput ret;
	ret.Color = tex2D(inputSampler, input.TexCoord) * colorMultiplier;
	return ret;
}

technique Passthrough
{
	pass Passthrough
	{
		VertexShader = compile vs_3_0 VSFunction();
		PixelShader = compile ps_3_0 PSFunction();
	}
}